import Notifier from "./Notifier";

class SimpleCommand extends Notifier {

    /**
     * @author PureMVC JS Native Port by David Foley, Frédéric Saunier, & Alain Duchesneau
     * @author Copyright(c) 2006-2012 Futurescale, Inc., Some rights reserved.
     *
     * @class SimpleCommand
     * @extends Notifier
     *
     * SimpleCommands encapsulate the business logic of your application. Your
     * subclass should override the #execute method where your business logic will
     * handle the
     * {@link Notification Notification}
     *
     * Take a look at
     * {@link Facade#registerCommand Facade's registerCommand}
     * or {@link Controller#registerCommand Controllers registerCommand}
     * methods to see how to add commands to your application.
     *
     * @constructor
     */
    constructor() {
        super();
    }

    /**
     * Fulfill the use-case initiated by the given Notification
     *
     * In the Command Pattern, an application use-case typically begins with some
     * user action, which results in a Notification is handled by the business logic
     * in the #execute method of a command.
     *
     * @param {Notification} notification
     *  The notification to handle.
     * @return {void}
     */
    async execute(notification) {
    }
}

export default SimpleCommand;